home *** CD-ROM | disk | FTP | other *** search
/ ShareWare OnLine 2 / ShareWare OnLine Volume 2 (CMS Software)(1993).iso / linux / lnxinfo.zip / NET.FAQ < prev   
Text File  |  1993-03-03  |  67KB  |  1,619 lines

  1. -----------------------------------------------------------------------------
  2. This is the LINUX NETWORKING FAQ 
  3. by Phil Copeland (p_copela@csd.uwe.ac.uk).
  4. -----------------------------------------------------------------------------
  5. Last revision: 17 Feb 1993
  6.  
  7. quick disclaimer: I must appologize for my luck of a spoll checkr 
  8.  
  9. 0. About this NET-FAQ
  10.     
  11.     This is the Linux Networking FAQ, which covers all of the details
  12.     of setting up TCP/IP under Linux, either for a network or only
  13.     for loopback mode. It's maintained by Phil Copeland, but this revision
  14.     is by Matt Welsh (mdw@tc.cornell.edu). New versions of this doc
  15.     will be posted to comp.os.linux.announce and can be found on the
  16.     major Linux FTP sites such as sunsite.unc.edu and tsx-11.mit.edu.
  17.  
  18.     The version of the kernel used in this NET-FAQ is 0.99.5 and the
  19.     GCC compiler is 2.3.2. Thus, some of these things may or may not
  20.     work depending on your kernel and compiler setup.
  21.  
  22.     My personal setup is a 486dx-25, 8Mb mem, 105 Mb Scsi Disk,
  23.     Adaptec 1542B Scsi Controller, Generic Scsi Tape (60Mb), 
  24.     1200 Baud Hayes Modem (HP on com2), Inmos B004 transputer board (2Mb),
  25.     Western Digital 8013 16Bit network card, 2 serial ports (com1/4),
  26.     Single printer port and Paradise Pro Designer II SVGA card.
  27.  
  28.     This mountain of equipment co-exists happily with each other and
  29.     works in harmony with each other. (I only include it here so that
  30.     people realize that such setups can exist)
  31.  
  32. 0.1. A Request
  33.     If you find some text I've written which no longer applies or is a
  34.     complete load of rubarb, please tell me and include a reason or
  35.     corrective text (patch file/ context diff/ off the top of your head
  36.     formats are very welcome)
  37.  
  38. 0.2. Foreward
  39.     This NET-FAQ has grown quite large (~70k) and the past few versions
  40.     contained so much information and were downright confusing. So,
  41.     we revamped it and added a "Quick Start Guide", a quick overview of
  42.     setting up TCP/IP under Linux. It's really quite easy to get
  43.     everything going. There is a lot of reference information here so
  44.     don't be scared off.
  45.  
  46. 1. Introduction
  47.  
  48.     Hello and welcome to the wonderful world of Linux networking. 
  49.  
  50.     Networking has always been one of the most exciting things that you can
  51.     coax a computer to take advantage of. It allows you to store/retrieve 
  52.     files from remote machines (some of which are probably located in 
  53.     countries which you'll never get to visit).
  54.  
  55.     Networking also allows computers to interactively communicate with 
  56.     other processes or users on these remote machines allowing a new 
  57.     social aspect of computing to be approached (mainly in the form of 
  58.     talk or MUD (Multi User Dungeon) sessions).
  59.  
  60.     Networking also has many stumbling blocks for the administrator to 
  61.     fall over, most notably the initial setting up of a system network 
  62.     which can send the most sane person to eating the proverbial hat 
  63.     through the hell of trying to coax their machines into networking life.
  64.  
  65.     This FAQ is designed to help you start into networking in a positive
  66.     direction by leading you simply through the network configuration that 
  67.     best suits you, whether you have a single machine with no network 
  68.     attachment (silly I know) or a multi billion credit networking 
  69.     computer for your country's local stock exchange. Please note that 
  70.     this FAQ does not follow the 'normal' format of other FAQ's as it's 
  71.     designed to teach you networking and its idiosyncacies.
  72.  
  73.     As of 21 Jan 93 there is a Linux Networking Quickstart guide (in the 
  74.     next section) by Matt Welsh to help review the process of getting it 
  75.     all going.
  76.  
  77. 1.1. Linux Networking Support
  78.     The Linux kernel is now distributed with the TCP/IP code in it. 
  79.     Basically, Linux's network support is for either UNIX (local)
  80.     domain sockets or INET (TCP/IP) domain. This FAQ specifically
  81.     covers configuring TCP/IP for Linux. You can either configure it
  82.     in "loopback mode" (which allows you to telnet, ftp, etc. only
  83.     to your own machine) or, if you have an Ethernet card, for use
  84.     on a network such as the Internet.
  85.  
  86. 1.2. Supported Ethernet Cards
  87.     To put your machine on a network you need an Ethernet connection
  88.     of some kind and an Ethernet card in your machine. Linux supports
  89.     a number of Ethernet cards, although only the WD8003 and WD8013 (aka
  90.     SMC Elite) cards come with the standard kernel. Donald Becker wrote
  91.     up the following information regarding Ethernet cards, prices, etc.
  92.  
  93.     The least expensive 8 bit ethercards start at $70 and are usually
  94.     NE1000 clones.  It's definitely worth it to pay an extra $10 and go
  95.     for a 16 bit bus interface NE2000 clone.  For another $10-$15 you can
  96.     get a shared memory 8013 clone, which will give you somewhat higher
  97.     system performance.
  98.  
  99.     You should expect to pay more than the price I listed above unless you
  100.     do careful shopping from the back of Computer Shopper and (even
  101.     better) LAN magazine.  I've gotten network things from both MCW
  102.     Distributors in Gaitherburg MD (good prices, sort of local, advertises
  103.     in Comp.Shop.) and Network Express (a little more expensive).
  104.  
  105.     You'll also have to decide the kind of interface you need.  "Thinnet"
  106.     is RG58A 50ohm cable with BNC connectors. 10BaseT is twisted pair
  107.     ("TP") to a central "hub".  There is also traditional thick 50ohm
  108.     cable, but it has no advantage in most installations.  An "AUI" port
  109.     is a 15 pin D-shell connector that can be hooked to an external
  110.     transceiver (ca.  $50 for 10BaseT or thinnet), usually for thicknet
  111.     (in which case it's $100+).  Cards typically have an AUI connector and
  112.     either a thinnet or twisted pair transceiver.  You'll pay about $20
  113.     more and give up the AUI to get both thinnet and 10BaseT.
  114.  
  115.     Some ethercards advertise status LED.  These are most useful for
  116.     10BaseT connections, which are easy to mix up.
  117.  
  118.     IMHO, thinnet with on-card transceivers results in a _much_ cheaper
  119.     system.  You only need to buy T connectors($3ea.), cables ($6/12ft at
  120.     RS), and two terminators ($2ea.), leading to a per-node cost of under
  121.     $100.  At these price levels it's definitely cheap enough to put on a
  122.     home system!  With twisted pair you'll need a hub which can easily
  123.     double your per-node code.  TP is only cost-effective if the wiring is
  124.     already there and its expensive to run more.
  125.  
  126.  
  127.     These drivers support all common 8390-based ethernet boards.  Currently
  128.     "common" is defined as:
  129.  
  130. 2. What you need to get started
  131.  
  132.     To configure TCP/IP under Linux you need:
  133.  
  134.     1)    A linux machine with linux kernel 0.98.5 although I'd
  135.         recommend going all the way to 0.99.5 as many tcp/ip errors
  136.         have been stomped out (although not all). 
  137.  
  138.     2)      Version 4.2 of the jump table library image (/lib/libc.so.4.2).
  139.         This is needed for the various network binaries and so on.
  140.         The most recent version is on sunsite.unc.edu:/pub/Linux/GCC.
  141.  
  142.     2)     If you're going to use TCP/IP over the network (i.e. not just
  143.         loopback mode), then you need one of the following Ethernet
  144.         cards:
  145.  
  146.         wd8013
  147.         wd8003
  148.         SMC Elite 16
  149.         ne2000
  150.         Alta Combo (ne2000 clone)
  151.         Aritsoft LANtastic AE-2 (ne2000 clone w/ extra memory)
  152.         D-Link Ethernet II
  153.         ne1000
  154.         3Com 3c503 EtherlinkII
  155.         3Com 3c503/16
  156.         Cabletron E1010, E1010-x, E2010, E2010-x
  157.         various HP 8390-based boards such as the HP27245, HP27247A,
  158.           and HP27250
  159.     
  160.  
  161.         The wd8003, wd8013, and SMC Elite 16 are all included in the
  162.         standard Linux kernel. The ne2000, ne1000, 3c503, Cabletron,
  163.         HP, and and other 8390 card drivers are available for beta 
  164.         testing. This will be covered later.
  165.  
  166.     3)    If you are only going to use 'loopback' mode, you won't need
  167.         a card! A special loopback device is used to communicate
  168.         with yourself. 
  169.  
  170.         *** NOTE when talking of ethernet devices, it should
  171.         be noted that /dev/eth0 does NOT exist, the kernel
  172.         knows about it and thats all you need to know, /dev/eth0
  173.         and /dev/loopback are fictionous (FS speaking)
  174.  
  175.     4)     The tcpip-0.8 networking package. This is the old, original
  176.         release of the TCP/IP software. The only things you need
  177.         from this package are the 'config' program and the network
  178.         installation scripts (such as rc.net, install.net, and so on).
  179.         Everything else in the tcpip-0.8 package (the kernel code,
  180.         diffs, binaries, etc.) is obsolete.
  181.  
  182.         You also need the tcpip-0.8-fixes package. You need more or
  183.         less everything from this package: the exact files you need
  184.         are covered later.
  185.  
  186.         NOTE: If you have SLS you should have everything you need in
  187.         /usr/etc/inet already.
  188.  
  189.         It's available from all of the major Linux FTP sites, in the
  190.         file tcpip-0.8.tar.Z. The fixes are in tcpip-0.8-fixes.tar.Z.
  191.         They should both be in the same place.
  192.  
  193.     5)     The net-bin-0.2 package. It's on sunsite and tsx-11 in the
  194.         file net-bin-0.2.tar.Z. 
  195.  
  196.         This file contains all of the TCP/IP clients and daemons that
  197.         you'll need, including: telnet, telnetd, ftp, ftpd, inetd,
  198.         named, rcp, rlogin, rsh, talk, ping, nslookup, and more.
  199.     
  200.     6)     You don't need the net-lib-1.1 package. The libraries have
  201.         now been added to the most recent libc.so.4.2, so if you have
  202.         that you're set.
  203.  
  204.     7)     If you want NFS support, Linux 0.99 now contains NFS as a
  205.         of mount which lets you NFS mount a filesystem (i.e. mount a
  206.         filesystem on another machine). Look on nic.funet.fi in
  207.         /pub/OS/Linux/ALPHA/NFS. 
  208.  
  209.     8)    Know the IRQ's of your internal cards. This is to avoid
  210.         conflicts and allow the 'drivers' to communicate with your
  211.         hardware
  212.  
  213.     9)    Also, If you do have ethernet cable, both coax (thin and thick)
  214.         as well as twisted pair will work, the cable is only there to
  215.         carry signals, your ethernet board works out how and the linux
  216.         'drivers' simply stuff data onto the card.
  217.  
  218.     10)    A lot of coffee and one of those stress relieving 
  219.         gadgets you can get in the local market. [Ed. note: I had
  220.         about 3 Dr. Peppers and I was okay. -mdw]
  221.  
  222.  
  223. 3. Quick Start Guide to setting up Linux TCP/IP
  224.  
  225.     This is a rundown of what you need to do to setup TCP/IP. Read it
  226.     through and then keep it all in mind as you're cleaning up all of
  227.     the details below. It's not difficult if you do everything correctly.
  228.  
  229.     It's not as quick as I wanted it to be. Basically I get all of the
  230.     installation stuff straight and then let Phil explain the details
  231.     of setting up named, etc. later in the NET-FAQ. This section was
  232.     written by Matt Welsh.
  233.  
  234.     - NOTE: In this discussion, the directory /usr/etc/inet is used 
  235.       to hold the tcp/ip daemons, configuration files, and so on.
  236.       You can use ANY directory you want, as long as you're consistent.
  237.       Two popular alternatives are /etc/inet or just /etc. I like to
  238.       keep all of my tcp/ip stuff in /usr/etc/inet just to keep it
  239.       seperate from my other /etc files (because I toy with it a lot).
  240.       This is mostly personal taste.
  241.  
  242.       TCP/IP clients (such as telnet, ftp, and so on) can go anywhere
  243.       on your user's path. The canonical place is /usr/bin. It doesn't
  244.       really matter; here I install clients in /usr/bin.
  245.  
  246.     - (Another) NOTE: Some programs, like fingerd, expect certain files
  247.       to be in certain places. For example, fingerd won't work if 
  248.       finger is not in /usr/bin. The easiest solution is to make a
  249.       symbolic link if you put your clients, etc. elsewhere. If
  250.       something doesn't seem to be working, make sure everything's
  251.       in the right place and has correct permissions. One way to
  252.       find out where a program expects companion programs or files
  253.       to be is to use 'strings'. For example,
  254.         strings fingerd  | more
  255.       will show you all of the printable strings in the fingerd
  256.       binary; you can use this information to find out where fingerd
  257.       expects finger to be, and so on.
  258.  
  259.     - First things first: Get all of the files, etc. listed above in
  260.       section 2.0. When unpacking the tcpip-0.8, tcpip-0.8-fixes, and 
  261.       net-bin packages, it's helpful to unpack them in separate directories,
  262.       because we'll be moving the files around to the right places. For 
  263.       example, unpack tcpip-0.8.tar.Z in /usr/src/tcpip-0.8 and 
  264.       net-bin-0.2.tar.Z in /usr/src/net-bin (or something like that).
  265.  
  266.       NOTE: The current version of SLS (0.99.2 and up) already have
  267.       pretty much everything you need to get networking going. The
  268.       configuration files all live in /etc/inet, with /usr/etc/inet
  269.       being a logical link to this location. So if you have SLS you
  270.       probably don't need to get all of these files. 
  271.  
  272.         - Most of the files in tcpip-0.8 you don't need. After you've unpacked
  273.       it somewhere, take inet.tar and unpack it in /usr/etc/inet (which you
  274.       may need to create). You can delete the following files in 
  275.       /usr/etc/inet:
  276.           config
  277.           inetd
  278.           named-xfer
  279.           telnetd
  280.           named
  281.           (Don't worry; later we replace them with newer versions).
  282.  
  283.     - The rest of the files from tcpip-0.8.tar.Z you can delete.
  284.  
  285.     - Unpack tcpip-0.8-fixes.tar.Z in /usr/etc/inet. You can delete
  286.       the file 'config' from it.
  287.  
  288.         - Take the config.c (from tcpip-0.8-fixes) and compile it in 
  289.       /usr/etc/inet with the command
  290.         gcc -o config config.c
  291.  
  292.       NOTE: If you do not recompile config, you will probably get an
  293.       ioctl error when you reboot with networking installed. To avoid
  294.       problems, you should recompile the program with the above command.
  295.  
  296.     - Having unpacked net-bin-0.2.tar.Z in /usr/src somewhere, you
  297.       can install these binaries. The following files are copied to
  298.       /usr/bin:
  299.         ftp
  300.         telnet
  301.         ping (must be setuid root; i.e. do 'chmod 4755 /usr/bin/ping')
  302.         nslookup
  303.         nsquery
  304.         nstest
  305.         rsh (must be setuid root)
  306.         rcp (must be setuid root)
  307.         rlogin (must be setuid root)
  308.         finger
  309.         talk 
  310.         tftp
  311.       The following files are copied to /usr/etc/inet:
  312.         ftpd
  313.         telnetd
  314.         inetd
  315.         named
  316.         named-xfer
  317.         rshd
  318.         rlogind
  319.         fingerd
  320.         ntalkd
  321.         tftpd
  322.       The man pages are copied to /usr/man... for example, all *.1 are
  323.       copied to /usr/man/man1 and *.8 are copied to /usr/man/man8.
  324.     
  325.     - Now you've got all the software installed, you need to recompile
  326.       your kernel with TCP/IP enabled. This is easy unless you have an
  327.       old kernel (pre-0.99) or need to install the ne2000/3c503/ne1000
  328.       drivers. Here's how.
  329.  
  330.       IF you're installing the 8390/n2000/3c503/ne1000 drivers (from
  331.       super.org, directory /pub/linux/newether), follow the directions
  332.       below for installing the driver. If you're NOT installing the 
  333.       8390 driver (or only want to use loopback), just skip down to 
  334.       compiling the kernel.
  335.  
  336.       Get the files that you need. See the README's there for full details.
  337.       Basically you need:
  338.         8390.c
  339.         8390.h 
  340.         Space.c
  341.         auto_irq.c
  342.         GNUmakefile
  343.         one or more of ne.c, wd.c, 3c503.c/3c503reg.h, and so on, 
  344.           depending on the card you have.
  345.         
  346.         Note that if you have 0.99.pl5 or above you need to get the
  347.         8390.c from /pub/linux/ether-995 instead (as a lot of
  348.         kernel TCP/IP code changed/got better with 0.99.pl5).
  349.  
  350.       Just follow the directions found in the file INSTALL on super.org.
  351.       It's easy. Just:
  352.           - Put the files above in /usr/src/linux/net/tcp.
  353.           - Edit the GNUmakefile to define which card you have, your
  354.         base address, and your IRQ. Note that with these new
  355.         drivers if EI8390 (the base address) and EI8390_IRQ (the
  356.         IRQ) are defined to be 0, they will be automatically
  357.         detected at bootup time.
  358.               - Edit Space.c (if needed),
  359.           - If you changed the GNUmakefile to use "eth_if" instead of
  360.         "eth0" (note that the newest 8390 drivers use "eth0" like
  361.         everyone else, they previously used "eth_if"), then you need to 
  362.         edit /usr/etc/inet/rc.net to run $CONFIG on "eth_if" instead of
  363.         "eth0". If not you'll get an ioctl error from config.
  364.  
  365.           If you have problems with the 8390 driver, contact becker@super.org.
  366.  
  367.     - If you're NOT installing the 8390 driver (i.e. just using the wd8003
  368.       driver with the standard kernel), then you need to edit 
  369.       /usr/src/linux/net/tcp/Space.c to reflect your card's IRQ, base
  370.       address, and so on. If you're only using loopback you can skip
  371.       this step, too.
  372.  
  373.       Anyway for those who are flexible, the standard kernel parameters
  374.           for this are :
  375.         
  376.           IRQ: 5                  (card interrupt)
  377.           mem: D0000              (where in memory to buffer data)
  378.           i/o addr: 280           (low level address of card)
  379.           mem start: D0000        (nearly all boards have a jumper to
  380.                        set this)
  381.           mem end: D2000          (for wd8013, make this D4000)
  382.  
  383.       NOTE: If you have problems with the memory start addr for the 
  384.       WD80[0/1]3, please get in touch with bir7@leland.stanford.edu.
  385.  
  386.     - Now you're all set to compile the kernel. I really suggest that 
  387.       you use version 0.99.pl4 or newer (probably 1.0 by the time this
  388.       is out). If you don't have at least 0.99 you can't run 'make config'
  389.       to autoconfigure the kernel and you'll have to do some stuff by
  390.       hand.
  391.  
  392.       In any case, it's easy. If you have 0.99 or newer, just cd to
  393.       /usr/src/linux and do a 'make config'. Make sure you answer 'yes'
  394.       to the question on configuring TCP/IP. The rest of the options are
  395.       up to you. Also make sure you edit /usr/src/linux/Makefile to fix
  396.       your root device, keyboard, and so on.
  397.       
  398.       Then do a 'make dep' to fix your dependencies--- THIS
  399.       STEP IS VERY IMPORTANT. Then (if you've already compiled this 
  400.       version of the kernel) do a 'make clean'. FINALLY you're ready to
  401.       just do 'make' to compile the kernel.
  402.  
  403.        When you're done you'll have the new kernel in /usr/src/linux/Image.
  404.       Copy it to a floppy or install it in /etc for use with LILO, or 
  405.       whatever. Reboot with your new kernel.
  406.  
  407.     - Once you're rebooted you can configure the stuff in /usr/etc/inet.
  408.       Run the script 'install.net' there, and answer the questions to
  409.       set your IP address, net address, router, domain name, and 
  410.       nameserver. This is covered later in the NET-FAQ.
  411.  
  412.       NOTE: If you have SLS then the "install.net" file isn't used. Instead
  413.       you need to edit hosts, resolv.conf, rc.net, and so on by hand to
  414.       set up the various addresses. It's very straightforward; just make
  415.       sure that the various configuration files (discussed below) in
  416.       /etc/inet have the correct information.
  417.  
  418.       NOTE 2: If you're only using loopback, then your IP address is
  419.       "127.0.0.1", and you don't have a router, network address, or net
  420.       mask (these are things prompted for by install.net). For SLS,
  421.       which doesn't have install.net, you just edit the config files
  422.       in /etc/inet to reflect this. 
  423.  
  424.     - I had to edit resolv.conf there to make sure that the hostname and
  425.       domain names were right. No big deal. Under SLS you need to set
  426.       your hostname in the file /etc/inet/host (not 'hosts') and set
  427.       the domain name in /etc/inet/domain in addition to this step.
  428.  
  429.     - Set up your named configuration files. Named is the service that
  430.       allows your machine to act as a nameserver. If you have a real
  431.       nameserver already, you probably don't want to run named (wastes
  432.       memory). If you're on loopback, you don't need it either (just put
  433.       all of your hostnames and ip addresses in /usr/etc/inet/hosts). 
  434.       Named is nice if you have a LAN setup and want your Linux box to be 
  435.       the name server. This is covered in detail later in the NET-FAQ as 
  436.       well.
  437.  
  438.       In general you don't need to run named unless you really like 
  439.       hacking with DNS. I don't see any need for it, since you can put
  440.       all of your hostnames in /usr/etc/inet/hosts and/or consult 
  441.       another nameserver.
  442.     
  443.     - Create the file /usr/etc/inet/host.conf. This file tells the
  444.       name-binding libraries how to look up names: in this case, we're
  445.       going to tell the libraries to check first /usr/etc/inet/hosts
  446.       and THEN ask the nameserver (if any). So, create
  447.       /usr/etc/inet/host.conf. It should contain only these 2 lines:
  448.         order hosts,bind
  449.         multi
  450.       This is VERY IMPORTANT. If you don't create this file then you
  451.       probably won't be able to look up names as expected. 
  452.  
  453.     - Set up inetd.conf to include lines for all of the tcp/ip daemons
  454.       (such as telnetd, fingerd, etc.) that you have in /usr/etc/inet.
  455.       This is covered later.
  456.  
  457.     - Make sure that /usr/etc/rc.net is run from your /etc/rc.local.
  458.  
  459.     - Edit rc.net to make sure it's getting your IP address right. As
  460.       it stands now it tries to grep for it in /usr/etc/inet/hosts,
  461.       and this doesn't always work. I just hardcode my IP address in
  462.       rc.net since my IP address isn't going to change much. :)
  463.  
  464.       SLS also tries to look up your net and router address from 
  465.       /etc/inet/hosts. I just hardcode these in as well as I don't 
  466.       trust grep.
  467.  
  468.       FOR LOOPBACK ONLY: If you're only using loopback, then edit
  469.       rc.net to make your IP address 127.0.0.1, and you can ignore
  470.       the netowkr and router addresses. In rc.net, you should only be
  471.       running the config commands for "loopback", and no others, so
  472.       comment out the lines which run config on "eth0".
  473.  
  474.       If you're using the 8390 driver (see above) make sure you've
  475.       changed 'eth0' to 'eth_if' on the config commands in rc.net.
  476.  
  477.     - If you're not running named, you can comment out the lines which
  478.       start it in rc.net. This will save memory and CPU time.
  479.  
  480.     - If you're not going to run NFS, you can comment out the lines in
  481.       rc.net which run nfsd, mountd, portmapper, and routed. 
  482.  
  483.     - If you want to use NFS (network file system), you're on your 
  484.       own. It should suffice to say that you need the nfs-client 
  485.       stuff from tsx-11 and nfs enabled in your kernel. Should be easy,
  486.       I haven't played with it yet.
  487.  
  488.     - If you didn't already, read all of the README files that come
  489.       with net-bin-0.2 and all that. They contain more up-to-date
  490.       info. NOTE that the info in tcpip-0.8's README file is mostly
  491.       out-of-date, follow the directions above and you'll be okay.
  492.  
  493.     - At this point you should be able to reboot your system, rc.net will
  494.       run, and you'll see something like
  495.         loomer -> 128.253.153.53
  496.         Starting /usr/etc/inet/inetd
  497.       which is output from rc.net. If you don't see this (or if there are
  498.       errors) then there's a problem; the best way to fix this is to
  499.       edit rc.net and the other files in /usr/etc/inet and make sure you
  500.       have your IP addresses and everything set right.
  501.  
  502.     Okay, that's about it for this so-called "Quick Start" guide. the
  503.     rest of the NET-FAQ will fill in the gaps and talk more about
  504.     networking than how to install the softs and configure the kernel.
  505.  
  506. 4. Running install.net
  507.  
  508.     As mentioned above, to set the various network numbers, etc. 
  509.     for your system you need to run the install.net script, which sets
  510.     lots of things in /usr/etc/inetd (mostly in hosts, resolv.conf, and
  511.     so on).
  512.  
  513.     NOTE: If you're running SLS you don't have the install.net script.
  514.     Just edit the files discussed in sections 5 and 6 of this net-faq by 
  515.     hand, it's not very difficult. All install.net does is put default
  516.     values in these files for you. 
  517.  
  518.     NOTE: If you're only on loopback, the only IP address you should
  519.     be using is '127.0.0.1' which stands for loopback. You will
  520.     be your own nameserver (either running named or just using 
  521.     /usr/etc/inet/hosts), and you don't need to worry about the router
  522.     and subnetwork addresses.
  523.  
  524.     When running install.net you'll have to answer these questions:
  525.  
  526.         Enter IP Address for (your host) (aaa.bbb.ccc.ddd)
  527.  
  528.     Here you are being asked what network address you would like to be known
  529.     as. Ip address are unique numbers so as to identify your machine from
  530.     another on a multiuser network. Normally if you reside in the Internet 
  531.     you will have a network address assigned by the NIC or your local 
  532.     network controller and you really must stick to it since there is no 
  533.     room for you to bugger up the network by using someone elses ip 
  534.     address. If you do not have a connection to the Internet, you will 
  535.     have less of a problem although it would still be a good idea to apply 
  536.     for a internet class c/d network number depending on your setup.
  537.  
  538.     There is a convention being used that allows people who are completely 
  539.     bemused by all the ip registration stuff that allocates a band of ip 
  540.     numbers (192.0.2.xxx) which are encouraged to be safely ignored by the 
  541.     rest of the internet. So if you don't know what ip you'll be assigned 
  542.     or (naughty) can't be bothered, please use that range to avoid 
  543.     bringing sections of the internet around your ears.
  544.  
  545.     IP numbers are typically of the 0-255.0-255.0-255.0-255 range so 
  546.     valid answers are 243.123.4.23 or 192.35.173.3, etc.  324.234.545.2 
  547.     is completely wrong.
  548.  
  549.         Enter Net Address for (your hostname) (aaa.bbb.ccc.0) 
  550.  
  551.     Here you are being asked for your subnetwork address. This requires a 
  552.     bit of explaination. Subnets are a "unit" of connectivity which depict 
  553.     how many possible hosts 'live' on the same piece of cable as you do 
  554.     (typically this never exceeds 253 on one piece on cable) a quick way 
  555.     of getting the question right is to type in whatever you have for your 
  556.     ip address but make the last number 0 eg if my ip address were 
  557.     135.56.33.155, my 'safe' Net address would be 135.56.33.0. 0.0.0.0 
  558.     means the whole world and is probably what slip people should use.
  559.  
  560.         Enter Router Address for (your hostname) (aaa.bbb.ccc.ddd) 
  561.  
  562.     Wibble! Ok here what is being asked is if you have a gateway machine
  563.     through which IP traffic can be passed to the great blue yonder. We 
  564.     are sneekily getting the routeing machine to do some hard work for 
  565.     us.  Routers tend to have 2 ethernet boards in them with differing 
  566.     network numbers for them so that they can 'bridge' between different 
  567.     numbered networks, eg you could not talk directly to a ip address of 
  568.     192.35.173.12 from an ip address of 192.35.175.15 but a machine in the 
  569.     middle with two ip address 192.35.173.4 and 192.35.175.3 can 'collect' 
  570.     the data from the 192.35.173.xxx network and transfer it to the 
  571.     192.35.175.xxx network. All we have to do here is stick in the ip 
  572.     address of the local router. You need to find this out from your local
  573.     network admin types. If you don't have a router use 0.0.0.0 meaning 
  574.     don't route anything.
  575.  
  576.         Enter Domain name for (your host) 
  577.  
  578.     This isn't too bad, domain names are 'convenient' labels eg uwe.ac.uk is
  579.     the domain name that appends to all the machines on site so that a sun
  580.     called csd would be known as csd.uwe.ac.uk This is so that you don't 
  581.     have to know the full ip number of the host, it's more convenient to 
  582.     call out a semi inteligable name eg 192.35.175.1 = csd.uwe.ac.uk but 
  583.     the 192.35.175 is aliased to uwe.ac.uk (University in the West of 
  584.     England, academic community, United Kingdom). Again this should be 
  585.     given to you with a registered ip address but for now you could put 
  586.     in 'at.linux.net' it can be changed later. 
  587.  
  588.     mdw: In short the domain name is the name of your ENTIRE domain.
  589.     For instance, my machine is loomer.ithaca.ny.us. The full hostname
  590.     of the machine is 'loomer.ithaca.ny.us', and the DOMAIN name is just
  591.     'ithaca.ny.us'. Here you're being asked for the DOMAIN name only.
  592.  
  593.         Name Server for Domain (aaa.bbb.ccc.ddd) 
  594.  
  595.     If you're on a University or business network, you'll probably have
  596.     a nameserver. A name server just looks up machine names for you.
  597.     For example, if you want to telnet to 'shoop.vpizza.com', you don't
  598.     have to tell your machine what shoop.vpizza.com's IP address is; your
  599.     machine can ask the nameserver instead.
  600.  
  601.     Ask your local network people what the nameserver for your network is.
  602.     Here you're being asked for the IP address (number) of the machine,
  603.     not the name. If you don't have a nameserver, then just put in your
  604.     own IP address, and you can either run named or go without a nameserver
  605.     (putting all of your names/IP addrs in /usr/etc/inet/hosts).
  606.  
  607. 5. Other /usr/etc/inet configuration files
  608.  
  609.     Ok time for a quick check of what you minimally *SHOULD* have in 
  610.     /usr/etc/inet:
  611.  
  612.     config        - This sets up the ethernet ip tables. 
  613.     inetd        - Daemon process that invokes other network daemons 
  614.     inetd.conf    - Configuration file for inetd about the other daemons 
  615.     install.net    - The semi automatic script I just talked about 
  616.     named-xfer    - Used for updating the nameserver records 
  617.     named.reload    - used to load in the named 
  618.     named.restart    - user to stop and restart the named process 
  619.     rc.net        - a network rc file called from /etc/rc.local
  620.     services    - a file specifying what 'port' numbers certain 
  621.               services are available on 
  622.     telnetd        - daemon for accpting incoming telnet requests
  623.     named        - the nameservice daemon 
  624.     Other daemons, such as fingerd, tftpd, and so on.
  625.  
  626. Time for some explainations I think... 
  627.  
  628. 5.1 config
  629.     'config' is a general do it all 'fix your ethernet board to your
  630.     local setup' command. It was configured when you ran the install.net 
  631.     script and if you look at the rc.net file you'll see where it plugged 
  632.     in all the IP stuff that you fed the script with... a bit technical 
  633.     but otherwise nothing to worry too much about provided that your 
  634.     original information was correct. One thing though, I have found that 
  635.     it is best to edit the rc.net file and 'hard wire' the ip addresses 
  636.     directly in rather than relying on the grep search from /etc/hosts but 
  637.     you may disagree (personal preferance).
  638.  
  639. 5.2 host.conf 
  640.     You'll have to create this file yourself if you don't have it.
  641.  
  642.     With the new net-libs being made available by Mitch, you will find 
  643.     that it is possible to set up how ip addresses are looked up using the 
  644.     file /usr/etc/inet/host.conf with the entries:
  645.  
  646.         order hosts,bind
  647.         multi
  648.  
  649.     which tells it in what order it should attempt to resolve an IP/domain 
  650.     name. In this case, when trying to match hostnames & ip addresses, 
  651.     the name binding libraries will search /etc/hosts and if no match is 
  652.     found then query the nameserver).
  653.  
  654.     If you run named then this is moot; you're your own nameserver. See 
  655.     below about named.
  656.  
  657. 5.3 inetd
  658.     'inetd' is a daemon process that wait's for certain events to happen 
  659.     upon which it will select which process to run eg if no network 
  660.     communication is happening, only inetd will be running but if a telnet 
  661.     session is requested by a remote machine, inetd will start running 
  662.     telnetd for that incoming call to connect to.
  663.  
  664. 5.4 inetd.conf
  665.     Of much more interest is 'inetd.conf' which has information about what
  666.     services to run and where to find them. Here's an example:
  667.  
  668. # Serv  type    packet wait/nowait      run as  program to run         invoke as
  669. #
  670. telnet    stream    tcp    nowait        root    /usr/etc/inet/telnetd  telnetd 
  671. talk    dgram    udp    wait        root    /usr/etc/inet/ntalkd   talkd 
  672. echo    dgram    tcp    nowait        root    internal 
  673. ftp    stream    tcp    nowait        root    /usr/etc/inet/ftpd     ftpd -l
  674.  
  675.     The net-bin-0.2 README file has a list of entries which you may add
  676.     to inetd.conf.  NOTE that inetd.conf cannot have any blank lines in it.
  677.     This is a bug which will be fixed soon.  Also, don't start services
  678.     you don't need or don't understand, like tftpd.  They will only waste
  679.     resources and may have security implications.
  680.  
  681. 5.5 protocols
  682.     Now another file that comes to mind at this stage is /etc/protocols or
  683.     rather /usr/etc/inet/protocols (I've made the symlink 
  684.     /etc/protocols -> /usr/etc/inet/protocols)
  685.     This file contain's information on what protocol is to be used
  686.     when the datagram packet arrives ie how it is to be treated.
  687.  
  688.     Here's an example /usr/etc/inet/protocols file:
  689.  
  690.     # protocols - standard well defined IP protocols
  691.     ip    0    # internet protcol, pseudo protocol number
  692.     icmp    1    # internet control message protocol
  693.     igmp    2    # internet group multicast protocol
  694.     ggp    3    # gateway -> gateway protocol
  695.     tcp    6    # transmission control protocol
  696.     egp    8
  697.     pup    12    # PARC universal packet protocol
  698.     udp    17    # user datagram protocol
  699.     idp    22
  700.     raw    255    # raw
  701.  
  702.     There are others but these are normally never needed.
  703.     (NOTE: the /etc/protocols from the tcpip-0.8 distribution defines ggp 
  704.     to be 2 which isn't the case)
  705.  
  706.     If this file is missing or empty, you will never get any transports 
  707.     (ftp/telnet) to work and will be told that there isn't any such 
  708.     protocol.
  709.  
  710. 5.6 services
  711.     'services' is a file which informs the tcp/ip code what port number a
  712.     particular program will run on for example if you telnetted to port 7 
  713.     on a sun you would be connected to an echo service which would send 
  714.     back a carbon copy of what you typed in but that service has a 
  715.     specially allocated port number referenced in the /etc/services file 
  716.     of both machines.
  717.  
  718.     There is a complete standardized services file in circulation from Ross
  719.     Biro; it is included in the tcpip-0.8-fixes.tar.Z package.
  720.  
  721.     Ross: This is the one I made from the relevant rfc.  It has some 
  722.     typos and such here, but it is probably ok for most use.
  723.  
  724.     Here's a *small* excerpt (not the entire file):
  725.  
  726. # /usr/etc/inet/services 
  727. tcpmux        1/tcp         # TCP Port Service Multiplexer 
  728. echo        7/tcp 
  729. echo        7/udp 
  730. discard        9/tcp        sink null 
  731. discard        9/udp        sink null 
  732. systat          11/udp          users 
  733. systat        11/tcp        users 
  734. daytime         13/udp 
  735. daytime        13/tcp 
  736. daytime        13/udp 
  737. ftp-data    20/tcp 
  738. ftp        21/tcp 
  739. telnet        23/tcp 
  740. smtp        25/tcp        mail #Simple Mail Transfer 
  741. time            37/udp          timserver 
  742. time        37/tcp            timerserver    # time 
  743. name        42/tcp        nameserver 
  744. name        42/udp        nameserver 
  745. whois           43/udp          nicname 
  746. whois        43/tcp        nicname 
  747. nameserver    53/tcp          domain 
  748. nameserver    53/udp          domain 
  749.  
  750.  
  751.     The other files in /usr/etc/inet are described in the named section
  752.     below.
  753.  
  754. 6. Names and name servers, what /etc/hosts is all about.
  755.  
  756.     The internet protocol document defines names, addresses and routes 
  757.     as follows:
  758.  
  759.         A name indicates what we seek.
  760.         An address indicates where it is.
  761.         A route indicates how to get there.
  762.  
  763.     Every network interface attached to a tcp/ip network is identified by a
  764.     unique 32-bit IP address. A name (hostname) can be assigned to any 
  765.     device that has an IP address. Names are assigned to devices because, 
  766.     compared to numeric Internet addresses, names are easier to remember 
  767.     and type correctly. In use, most of the tcp/ip software on linux can 
  768.     interchangeably use name or ip address but whichever is chosen, it is 
  769.     always the IP address that is used to make connections. Translating 
  770.     names into addressses isn't simply a "local" issue. The command 
  771.     'telnet fred.at.linux.net' is expected to work correctly on every host 
  772.     that is connected to the network. If the machine is connected to the 
  773.     Internet, hosts all over the world should be able to translate the 
  774.     name into a valid IP address, therefore, some facility must exist on 
  775.     the net to translate the name into the numeric IP address.
  776.  
  777.     There are two methods for doing this: one involves using a local lookup
  778.     table ('/usr/etc/inet/hosts') and the other uses DNS (Domain Name 
  779.     System) to remotely interrogate the network for the IP address.
  780.  
  781. 6.1 hosts
  782.     '/usr/etc/inet/hosts' (or /etc/hosts) is a very simple file which 
  783.     contains a numeric IP address followed by one or more hostname
  784.     aliases:
  785.  
  786.     # /usr/etc/hosts example
  787.     # note that the hash is a comment, no text is processed after 
  788.     # it until the next <cr> 
  789.     # 
  790.     123.45.67.20    csd csdsun csd.uwe.ac.uk csdsun.ac.uk 
  791.     123.45.67.21    manic manic.uwe.ac.uk    # Tom's machine 
  792.     123.45.67.22    chef chef.uwe.ac.uk    # Main waste of money 
  793.     # other nets 
  794.     192.35.173.1    hal hal-9000        # local hidden host 
  795.     192.35.173.2    slave slave.uwe.ac.uk    # linux engine 485 25 
  796.     192.35.173.30    zen zen.uwe.ac.uk    # Interactive 2.2.1 386 33 
  797.     192.35.173.35    thing 
  798.     # external nets 
  799.     162.34.32.22    weird.emer.cty.oz 
  800.  
  801.     Clearly this has a limitation in that on large networks ALL machines 
  802.     would have to have this information on disk and that could have 1000's
  803.     of entries. Just think what that means if an extra 120 machines were 
  804.     added! 1000's of machines would have to have their /etc/hosts table 
  805.     updated either by hand or automatic shell scripts calling the list 
  806.     from a main machine... (see where this is leading?) Enter the DNS 
  807.     service...
  808.  
  809.     The SLS /etc/inet/hosts file is more involved, it specifies the
  810.     router, network, and IP addresses. It's pretty self-explanatory
  811.     but you should edit this file (because most everything's set here,
  812.     as install.net isn't used with SLS).
  813.  
  814. 6.2 DNS: Domain Name Service
  815.     DNS scales well. It doesn't rely on a single large table; it is a 
  816.     distributed database system that doesn't bog down as the database 
  817.     grows.  DNS currently provides information on approximately 700,000 
  818.     hosts. DNS also guarentees thst the new host information will be 
  819.     disseminated to the rest of the network as it is needed.
  820.  
  821.  
  822. 6.2.1 named: running DNS from your own machine
  823.     If you don't have a nameserver (which services DNS requests for you),
  824.     and aren't just using loopback, then you can run named on your own
  825.     machine. Named will allow you to setup a subsection of the DNS database
  826.     for use on your own machine and local network. There are a number of
  827.     files to be edited.
  828.  
  829.     These are:
  830.         /usr/etc/inet/resolv.conf
  831.         /usr/etc/inet/named.boot
  832.         /usr/etc/inet/a_hosts_table (can be called anything, usu.
  833.           just named.hosts)
  834.  
  835.     If you have a nameserver, the only file you need is resolv.conf,
  836.     where you define your domain name and nameserver's IP address.
  837.     These are both set up by install.net. For example:
  838.  
  839. resolv.conf:    
  840.     domain        uwe.ac.uk 
  841.     nameserver    192.35.173.21
  842.  
  843.     However, if you're going to run named you need to define the
  844.     'nameserver' in resolv.conf to be YOUR OWN IP address. And you need
  845.     to provide information in named.boot and a_hosts_table....
  846.  
  847. resolv.conf:
  848.     domain        uwe.ac.uk
  849.     nameserver    192.35.173.2
  850.  
  851. named.boot:
  852.     domain    uwe.ac.uk 
  853.     primary    uwe.ac.uk    /usr/etc/inet/a_hosts_table 
  854.  
  855. a_hosts_table:
  856.     @    IN    SOA    slave.uwe.ac.uk. root ( 
  857.             1.1    ;serial 
  858.             3600    ;refresh every 10 hours 
  859.             300    ;retry every 6 minutes 
  860.             36000000;expire after 1000 hours 
  861.             3600 )    ; default ttl is 100 hours
  862.         IN    NS    slave.uwe.ac.uk. 
  863.     slave    IN    A    192.35.173.2   
  864.     hal     IN    A    192.35.173.1 
  865.     zen    IN    A    192.35.173.30 
  866.     . 
  867.     . 
  868.     . 
  869.     mother    IN    A    192.35.173.69 
  870.  
  871.  
  872.     If you're going to run named, resolv.conf, named.boot, and 
  873.     a_hosts_table will suffice, BUT there are more (for other fun named
  874.     options, etc.) 
  875.  
  876. 6.2.2 More complete list of named setup files
  877.     YOU DON'T NEED to run named if you're only using loopback OR if
  878.     you have a nameserver. It's a waste of CPU time and memory. But if
  879.     you don't have a nameserver or if you just feel like hacking it,
  880.     here's a more complete named setup:
  881.     
  882.     resolv.conf:    If this file exists, it is read each time a process 
  883.             using the resolver starts. As a result, the file is
  884.             not normally created unless necessary and isn't used
  885.             if named is running. You should have it anyway in case
  886.             named dies. :) 
  887.     named.boot:    Sets general named parameters and points to the 
  888.             sources of the domain database information used 
  889.             by this server. The sources can be local disks or 
  890.             remote servers. 
  891.     named.ca:    Points to the root domain servers 
  892.     named.local:    Used to locally resolve the loopback address 
  893.     named.hosts:    The zone info file that maps host names to IP addresses 
  894.     named.rev:    the zone file for the reverse domain that maps IP  
  895.             addresses to host names (you'll prob never touch it 
  896.             so i'm going to skip it's description unless people 
  897.             get upset enough to lynch me) 
  898.  
  899.  
  900. 6.2.2.1 hostcvt
  901.     *** STOP PRESS *** 
  902.  
  903.     I've just found out from Ross by sheer accident that there is a 
  904.     program released in comp.sources.unix (volume25) called hostcvt (mutter 
  905.     mutter) which is supposidly capable of converting /etc/host entries 
  906.     into the nesessary corrisponding named files. 
  907.  
  908.     This program is now available on sunsite.unc.edu for Linux, in
  909.     /pub/Linux/system/network. It's also distributed on SLS.
  910.  
  911.  
  912.     *** RESUME PRESS *** 
  913.  
  914. 6.2.3 Where DNS gets its information
  915.     The 'named.boot' file points to sources of DNS information. 
  916.     Some of these sources are local files; others are remote servers. You 
  917.     only need to create the files referenced in the primary and the cache 
  918.     statements.
  919.  
  920.  
  921. DNS commands    |  functions 
  922. ----------------+-------------------------------------------------------------- 
  923. directory    |      Defines a directory for all subsequent file referances 
  924. primary        |      Declares this server as primary for the specified zone 
  925. secondary    |      Declares this server as secondary for the specified zone
  926. cache        |      Points to the cache file 
  927. forwarders    |      Lists servers to which queries are forwarded 
  928. slave        |      Forces the server to only use the Forwarders 
  929. ----------------^-------------------------------------------------------------- 
  930.  
  931.     Here are some example setups of the named files.
  932.  
  933. 6.2.4 resolv.conf
  934.     domain        uwe.ac.uk 
  935.     nameserver    192.35.173.2 
  936.  
  937.     As mentioned before, if you are going to be using named, this file is 
  938.     usually disguarded. Otherwise it points to a server that the resolver 
  939.     is to query for domain information. If no nameserver entries are 
  940.     contained in the file, the local host is queried for the information.
  941.  
  942. 6.2.5 named.boot:
  943.     ; cache only server
  944.     ;
  945.     primary    0.0.127.IN-ADDR.ARPA    /usr/etc/inet/named.local
  946.     cache    .            /usr/etc/inet/named.ca
  947.  
  948.     The loopback domain is an in-addr.arpa domain that maps the address
  949.     127.0.0.1 to the name localhost. The idea of resolving your own loopback
  950.     address makes sense to most people, so most named.boot files contain 
  951.     this entry.
  952.  
  953. 6.2.6 named.boot: 
  954.     ; Primary name server boot 
  955.     ; 
  956.     directory                /usr/etc/inet 
  957.     primary        big.cty.com        named.hosts 
  958.     primary        54.152.IN-ADDR.ARPA    named.rev 
  959.     primary        0.0.127.IN-ADDR-ARPA    named.local 
  960.     cache        .            named.ca 
  961.  
  962.     The directory statement tells named that all subsequent filenames are
  963.     relative to the /usr/etc/inet directory. The first primary statement
  964.     declares that this is the primary server for the big.cty.com domain and
  965.     that the data for that domain is loaded from the file named.hosts. The
  966.     second primary statement points to the file that maps IP addresses from
  967.     152.54.xxx.xxx to hostnames. This statement says that the local server 
  968.     is the primary server for the reverse domain 54.152.in-addr.arpa and 
  969.     that the data for the domain can be loaded from the file named.rev.
  970.  
  971.  
  972. 6.2.7 DNS Resource Records (RR's)
  973.     Resource Records are used in the named files to set attributes of
  974.     addresses, networks, and so on. Here's a list of the RR types:
  975.  
  976. Resource Record        Record type    function 
  977. ----------------------------------------------------------------------------- 
  978. Start of authority    SOA        Mark the beginning of a zone's data, 
  979.                     and define parameters that affect the 
  980.                     entire zone 
  981. Name server        NS        Identifies a domain's name server 
  982. Address            A        Converts a host name to an address 
  983. Pointer            PT        Converts an address to a hostname 
  984. Mail Exchange        MX        Identifies where to deliver mail for a 
  985.                     given domain name 
  986. Canonical name        CNAME        Defines an alias host name 
  987. Host information    HINFO        describes a hosts hardware and OS 
  988. Well Known Service    WKS        Advertises network services 
  989. ------------------------------------------------------------------------------ 
  990.  
  991.     These resourse records are defined in RFC 1033. 
  992.     The format of DNS resourse records is: 
  993.         [name] [ttl] IN    type data 
  994.  
  995.     name:    This is the name of the domain object the resource record 
  996.         references. It can be an individual host or an entire domain.
  997.     ttl:    time-to-live defines the length of time in seconds that the 
  998.         information in this resource record should be kept in the 
  999.         cache. Usually this field is left blank and the default ttl 
  1000.         set in the SOA is used. 
  1001.     IN:    Identifies the record as an internet DNS resource record. There 
  1002.         are other classes of records, but they are not used by the DNS 
  1003.     type:    Identifies what kind of resourse record this is 
  1004.     data:    the information specific to this type of resourse record 
  1005.  
  1006.  
  1007. 6.2.8 The cache Initialization file 
  1008.     The basic 'named.ca' file contains "NS" records that name the root 
  1009.     servers and "A" records tha provide the addresses of the root servers. 
  1010.     A basic 'named.ca' is shown here:
  1011.  
  1012. named.ca: 
  1013.     ; named.ca - typical setup 
  1014.     ; 
  1015.     ; Servers for the root domain 
  1016.     ; 
  1017.     99999999    IN    NS    tsx-11.mit.edu. 
  1018.     99999999    IN    NS    nic.funet.fi. 
  1019.     ; 
  1020.     ; Root servers by addresses 
  1021.     ; 
  1022.     tsx-11.mit.edu.    99999999    IN    A    231.232.21.12 
  1023.     nic.funet.fi.    99999999    IN    A    123.45.67.32 
  1024.  
  1025.     Note that the ttl is 99999999 the largest possible size so that the 
  1026.     root servers are never removed from the cache.
  1027.  
  1028.  
  1029. 6.2.9 The 'named.local' file 
  1030.     The 'named.local' file is used to convert the address 127.0.0.1 (the
  1031.     loopback address) into the name localhost. It's the zone file for the
  1032.     reverse domain 0.0.127.in-addr.arpa. Because ALL systems use 127.0.0.1 
  1033.     as the loopback address, this file is virtually identical on every 
  1034.     server.
  1035.  
  1036. named.local: 
  1037.     @    IN     SOA    slave.uwe.ac.uk. root. ( 
  1038.                 1    ;    serial number
  1039.                 36000    ;    refresh every 10 hrs 
  1040.                 3600    ;    retry after 1 hr 
  1041.                 3600000    ;    expire after 1000 hrs 
  1042.                 36000    ;    default ttl is 10 hrs 
  1043.                 ) 
  1044.         IN    NS    slave.uwe.ac.uk. 
  1045.     1    IN    PTR    localhost. 
  1046.  
  1047.  
  1048. 6.2.10 The 'named.hosts' file 
  1049.     The 'named.hosts' file contains most of the domain information. This 
  1050.     file converts host names to IP addresses, so "A" records predominate, 
  1051.     but it also contains "MX", "CNAME" and other records.
  1052.  
  1053. named.hosts:
  1054.     ; named.hosts file example 
  1055.     ; 
  1056.     @    IN     SOA    slave.uwe.ac.uk.       probs. (
  1057.                 1    ;    serial 
  1058.                 36000    ;    refresh every X seconds 
  1059.                 3600    ;    retry every X seconds 
  1060.                 3600000    ;    expire after X seconds 
  1061.                 36000    ;    default time to live X seconds 
  1062.                 ) 
  1063.     ; define nameservers and mailservers 
  1064.         IN    NS    slave.uwe.ac.uk. 
  1065.         IN    MX    csd.uwe.ac.uk. 
  1066.     ; 
  1067.     ; define localhost
  1068.     ; 
  1069.     localhost    IN    A    127.0.0.1 
  1070.     ; 
  1071.     ;hosts in this zone 
  1072.     ;
  1073.     loghost        IN    A    192.35.173.1
  1074.     hal        IN    A    192.35.173.1 
  1075.     zen        IN    A    192.35.173.30 
  1076.     thing        IN    A    192.35.173.35 
  1077.     slave        IN    A    192.35.173.2 
  1078.             IN    MX    2    192.35.173.2 
  1079.     servant        IN    CNAME    slave.uwe.ac.uk. 
  1080.     mother        IN    A    192.35.173.69 
  1081.     ; 
  1082.     ; outside domains now follow 
  1083.     ;     
  1084.     csd        IN    A    192.35.175.1 
  1085.             IN    MX    5    192.35.175.1 
  1086.     csdsun        IN    CNAME    csd.uwe.ac.uk. 
  1087.     chef        IN    A    192.35.176.1 
  1088.     ; 
  1089.     ;fictional outside gateway 
  1090.     midway        IN    A    166.23.44.2 
  1091.     ; 
  1092.     ; etc until you have built a reasonable host table 
  1093.     ; that you feel will be adaquate for your network 
  1094.  
  1095.  
  1096. 7. NFS: The Network File System 
  1097.     Network filing systems are convenient mechinisms which allow your 
  1098.     machine axcess to more disk space that it actually has by 'borrowing' 
  1099.     disk space from another networked machine for either sharing of common 
  1100.     data or if allowed, the storing of data generated by your machine.
  1101.  
  1102.     NFS has several benefits:
  1103.     1)    it reduces local disk storage requirements because 
  1104.         a network can store a single copy of a directory, while 
  1105.         the directory continues to be fully accessible to everyone
  1106.         on the network. 
  1107.     2)    NFS simplifies central support tasks, because files can be 
  1108.         updated centrally, yet be available throughout the network.
  1109.     3)    NFS allows users to use familiar UNiX commands to manipulate 
  1110.         files with rather than learning new ones. There is no need 
  1111.         to use rcp/tftp/ftp to copy files, just 'cp' will do.
  1112.  
  1113.     As of 0.99.2 support has been added into the kernel for running
  1114.     binaries on both the MSDOS and NFS filesystems (of course the
  1115.     binaries have to be Linux type binaries to run on your system).
  1116.     Linus warns that they'll be slower to load and won't be memory
  1117.     effecient; there are hopes that this will change soon.
  1118.     
  1119.     Linux now has the following filesystems available for it: minix, 
  1120.     extfs, msdos, proc, isofs, nfs with a view to a compressed 
  1121.     filesystem being worked on (zfs?) all are perfectly transparent to 
  1122.     each other although filename tructation may occur. The reason that I 
  1123.     mention this is that NFS will allow you filename lengths supported by 
  1124.     the type of filesystem you mount eg the HP9000 here supports 15 char 
  1125.     filenames on an NFS mount as does it's MAG-OPT drive whereas the 
  1126.     sun4's offer 255 char filename on their NFS exports.
  1127.  
  1128.  
  1129.  
  1130. 7.1 The '/etc/exports' file
  1131.     If you want your machine to be an NFS server for other systems,
  1132.     you must run nfsd, mountd and edit /etc/exports.
  1133.  
  1134.     '/etc/exports' allows your machine to decide what local filesystems it 
  1135.     will allow remote clients to NFS mount and decide what access those 
  1136.     clients should have to your filespace.
  1137.     Example (I just love examples): 
  1138.  
  1139.     /    slave(root_quash) moonbeam(root_quash)
  1140.     /usr    (ro,root_quash)
  1141.     /home    slave csdsun 
  1142.  
  1143. --------v----------------------------------------------------------------------
  1144. flag    |    function 
  1145. --------+----------------------------------------------------------------------
  1146. ro    |    read only, this is the default
  1147. rw    |    read and write, used to allow a client to write to that FS
  1148. --------^---------------------------------------------------------------------- 
  1149.  
  1150.     There are other options but these are covered in the README for the 
  1151.     NFS kit and the above are the simplest to get to grips with.
  1152.  
  1153. 7.2 The /usr/etc/inet/rc.net file 
  1154.     The file 'rc.net' is used to start the named services and nfs the 
  1155.     suggested setup is as follows:
  1156.      
  1157.     . 
  1158.     . 
  1159.     . 
  1160.     if [ -f /etc/portmap ] 
  1161.     then 
  1162.             echo "Starting portmapper..." 
  1163.             /etc/portmap 
  1164.         if [ -f /etc/exports ]
  1165.         then
  1166.             echo "Starting nfsd..." 
  1167.             /etc/nfsd 
  1168.             echo "Starting mountd...." 
  1169.             /etc/mountd 
  1170.         fi
  1171.         echo 
  1172.         mount -vt nfs fish:/pub /pub & 
  1173.         mount -vt nfs sparky:/mnt/a /test & 
  1174.     fi 
  1175.  
  1176.     Here if the portmapper isn't running it is started. Once started, it 
  1177.     is now possible to 'hang' the nfsd daemon as well as the mountd daemon 
  1178.     off it.  The two mount commands are from the modified mount command 
  1179.     that come with the NFS package and both are run in the background so 
  1180.     that if one of the servers were unreachable the system would continue 
  1181.     to try while going on to finish the system setup and allow root/users 
  1182.     to login.  The '-vt nfs' bit isn't nessessary as the mount program 
  1183.     understands the nfs syntax and mounts it as an nfs system but I 
  1184.     include it anyway.
  1185.  
  1186.  
  1187. 8. '...And on the 6th day she said, "let there be connectivity"...'
  1188.  
  1189.     All this is well and fine but shows nothing of how to use the various 
  1190.     utilities commonly taken for granted in networking. ie telnet & ftp 
  1191.     and X11. 
  1192.     
  1193. 8.1 telnet    
  1194.     Normally people would telnet over a LAN (Large area network) 
  1195.     to a remote site simply to play a mud (multi user dungeon) which runs 
  1196.     on a socket say port number 4000 so the command 'telnet 
  1197.     wopr.magic.mount.mil 4000' would connect to a service offered by that 
  1198.     machine on port 4000. Now then, sockets are most easily perceived as 
  1199.     'openings' in a wall where data may pass through in a uni/bidirectional 
  1200.     fashion, there are any number of ports available for use and quite a 
  1201.     few reserved port sockets can be found in your /etc/services file. 
  1202.     For example by telneting to port 7 of your target machine you should 
  1203.     be able to communicate with the computer by typing in a few charcters 
  1204.     and pressing return. Port 7 is the echo service and any input you type 
  1205.     should be sent back exactly as you sent it. In normal use, however, 
  1206.     telnet connects to port 23 where a login service is provided for 
  1207.     interactive logins to the system.
  1208.  
  1209.     The canonical usage of telnet is just 
  1210.         telnet <hostname> 
  1211.     where <hostname> is another machine on the net that you want to
  1212.     log into.
  1213.  
  1214. 8.2 ftp
  1215.     Ftp allows the user to transfer files from the host to the target
  1216.     machine but requires the user to login as (s)he would normally. Once 
  1217.     logged in the user can transfer files both into and out of the machine 
  1218.     with simple commands like 'get text.doc' or 'send report.wps'. Ofter 
  1219.     ftp is used in the 'get' mode and when browsing sites it is usefull to 
  1220.     know that you can peek at the contents of a small README file using 
  1221.     the command 'get README.requirements /dev/tty' which will transfer the 
  1222.     contents of the file to your tty line (in english: the screen)
  1223.  
  1224.     To start up FTP, just do
  1225.         ftp <hostname>
  1226.     where <hostname> is the machine you want to upload/download from.
  1227.     For public FTP service, login on the remote machine as "anonymous"
  1228.     and give your e-mail address as the password.
  1229.  
  1230. 8.3 X11 and networking
  1231.     After you have networking set up, you can now run X Windows across the 
  1232.     network. For example, you can login to a remote machine in one xterm, 
  1233.     and from that machine run an X program and direct it to display on 
  1234.     your machine. For example, if your Linux machine is called "shoop", on 
  1235.     the remote machine the command 
  1236.         xclock -display shoop:0 &
  1237.     would display the clock on shoop's display.
  1238.  
  1239.     Before you can do this, however, you must run the command "xhost" on
  1240.     shoop to allow the remote machine to display on shoop. If the
  1241.     remote machine is "loomer", from shoop you must run the command    
  1242.         xhost loomer
  1243.     to give loomer this access.
  1244.  
  1245.     This is the entire concept underlying X Windows: you can now run huge
  1246.     programs (such as Mathematica) on remote machines and have them
  1247.     display on your Linux box. 
  1248.  
  1249.  
  1250. 9. Standalone named Configuration
  1251.  
  1252.     What follows is an example named configuration for a local (2-machine)
  1253.     isolated network. 
  1254.  
  1255.     Well after some peer pressure, I see that I'm going to have to include a
  1256.     standalone configuration in the FAQ as well. According to my 
  1257.     sources/hallucinations, there is an accepted address that is for 
  1258.     'junk' setups so as not to conflict with other machines on the 
  1259.     internet. That address is 192.0.2.xxx where xxx ranges 0..255. 
  1260.     (This address is not routed through the internet so you should be 
  1261.     relatively safe from ip address clashes).
  1262.  
  1263.     I'm going to assume that your configurations will be held in /etc so 
  1264.     the following files will be referanced there instead of /usr/etc/inet 
  1265.     or /etc/inet. (NOTE: This deviates from the discussion above. /etc
  1266.     is fine to use instead of /usr/etc/inet as long as you're
  1267.     consistent).
  1268.  
  1269.     A while ago I posted a couple of messages concerning the setup
  1270.     of the named daemon config. files for a simple isolated 
  1271.     network with a local nameserver. Since nobody responded with
  1272.     a ready-to-go solution I decided to dig a little deeper into
  1273.     the subject. As a result I've now got a working nameserver.
  1274.     This message describes the changes I made. Here goes:
  1275.  
  1276.  
  1277. 9.1 General Info
  1278.     My isolated network consists of 2 machines, called whisky
  1279.     and jenever which are both located in the domain vdm. Whisky
  1280.     has IP address 192.0.2.1 and jenever has IP address 192.0.2.4.
  1281.     The nameserver runs on whisky, and jenever accesses whisky to
  1282.     resolve names.
  1283.  
  1284.     Starting point is SLS 0.98pl5. This distribution contains
  1285.     install.net and hostcvt, which are supposed to make network
  1286.     installation easier, but they where of no help to me. Instead,
  1287.     I manually changed the files concerned.
  1288.  
  1289. 9.2 Common changes to files for both machines.
  1290.     /bin/hostname machine_name added to /etc/rc. Machine_name
  1291.     stands for either whisky or jenever. This command should
  1292.     be placed before the /bin/sh rc.local command. Further 
  1293.     hostname commands removed from /etc/rc and /etc/rc.local.
  1294.  
  1295.     In /etc/inet/rc.net HOSTNAME=softland changed to 
  1296.     HOSTNAME=machine_name. Commented out the IPADDR= line 
  1297.     and inserted IPADDR=192.0.2.1 or IPADDR=192.0.2.4.
  1298.  
  1299.     ROUTER set to 0.0.0.0 and NET set to 192.0.2.0. In the
  1300.     third $CONFIG line eth0 changed into eth_if (I use an
  1301.     Artisoft network card, this isn't necessary for standard
  1302.     WD network cards).
  1303.  
  1304. 9.3 Changes for the nameserver (whisky in my case).
  1305.     For a nameserver the portmap, inetd and named daemons
  1306.     should be started. This is done in the /etc/rc.net
  1307.     file.
  1308.  
  1309.     named.boot contains 
  1310.     -----------------------------------------------------
  1311.     directory    /etc
  1312.  
  1313.     domain        vdm
  1314.     primary        vdm            named.hosts
  1315.     primary        2.0.192.in-addr.arpa    named.rev
  1316.     primary        0.0.127.in-addr.arpa    named.local
  1317.     -----------------------------------------------------
  1318.  
  1319.     named.hosts contains
  1320.     -----------------------------------------------------
  1321.     @    IN   SOA  whisky.vdm.  root.whisky.vdm. (
  1322.               1    ; Serial
  1323.               3600 ; Refresh
  1324.               300  ; Retry
  1325.               3600000   ; Expire
  1326.               14400 )   ; Minimum
  1327.  
  1328.         IN    NS    whisky.vdm.
  1329.  
  1330.     localhost    IN    A    127.0.0.1
  1331.     whisky        IN    A    192.0.2.1
  1332.     jenever        IN    A    192.0.2.4
  1333.     -----------------------------------------------------
  1334.  
  1335.     named.rev contains
  1336.     ------------------------------------------------------
  1337.     @    IN    SOA    whisky.vdm. root.whisky.vdm. (
  1338.                 1 ;
  1339.                 3600 ;
  1340.                 300 ;
  1341.                 3600000 ;
  1342.                 3600 ) 
  1343.  
  1344.         IN    NS    whisky.vdm.
  1345.  
  1346.     1    IN    PTR    whisky.vdm.
  1347.     4    IN    PTR    jenever.vdm.
  1348.     ------------------------------------------------------
  1349.  
  1350.     named.local contains
  1351.     ----------------------------------------------------------
  1352.     @    IN    SOA    whisky.vdm.    root.whisky.vdm. (
  1353.                 1;
  1354.                 36000;
  1355.                 3600;
  1356.                 3600000;
  1357.                 36000;
  1358.                 )
  1359.  
  1360.         IN    NS    whisky.vdm.
  1361.     1    IN    PTR    localhost.
  1362.     ----------------------------------------------------------
  1363.     
  1364. 9.4 Changed for a non-nameserver (jenever in my case).
  1365.  
  1366.     For a non-nameserver only the portmap and inetd daemons
  1367.     have to be started. The startup of the named daemon in
  1368.     /etc/inet/rc.net can thus be commented out.
  1369.     
  1370.     A non-nameserver depends on a nameserver for name
  1371.     resolution. The non-nameserver is directed to a name-
  1372.     server by the /etc/resolv.conf file (NOT the
  1373.     /etc/resolv.conf as mentioned in a lot of doc. files).
  1374.     
  1375.     So, the /etc/inet/resolv.conf file on jenever contains:
  1376.     ---------------------
  1377.     domain vdm
  1378.     nameserver 192.0.2.1
  1379.     ---------------------
  1380.     
  1381.     That's all. 
  1382.  
  1383.  
  1384. 10. Troubleshooting and Common Problems
  1385.  
  1386.     Here are some of the most common problems with Linux tcp/ip.
  1387.  
  1388. 10.1 config
  1389.     One of the most common complaints regards the 'config' command.  What 
  1390.     isn't often noted is that this has to be recompiled from the 0.8.1 
  1391.     sources (available currently as tsx-11.mit.edu:
  1392.     /pub/linux/ALPHA/tcpip/tcpip-0.8.1.tar.Z). 
  1393.  
  1394. 10.2 Library versions
  1395.     Another problem that crops up is that some binaries that are 
  1396.     distributed require libc.2.2.2 to be present (i.e. the telnet and
  1397.     ftp in tcpip-0.8. ONLY use the binaries in net-bin-0.2 or a newer
  1398.     version (which use jump-4.2 or newer) and you're okay.
  1399.  
  1400.     Other people think that it's their version of libraries that cause the
  1401.     problem but can't find the source code for the various utils to 
  1402.     recompile. Get the net-src-0.2.tar.Z package from sunsite or tsx-11
  1403.     and you're set; recompile at will. :)
  1404.  
  1405. 10.3 kernel errors
  1406.     You boot the new kernel and suddenly all hell breaks loose... you 
  1407.     have printk's telling you about RPC errors, framepacket errors etc... 
  1408.     it looks a mess but the kernel keeps working... I suggest you grab 
  1409.     HLU's bootdisk and edit your rc files again. Your problem here is most 
  1410.     likely that you have accidentally attemped to use a working IP address 
  1411.     as your own. If it's a sun's, you can expect the sun to lose all 
  1412.     networking capabillity and not recover until lots of drastic commands 
  1413.     are issued (fastboot won't help the guy either). I was asked to do 
  1414.     this so I wasn't too fussed but loads os system admin people out there 
  1415.     will get very ticked off if you do this deliberately.
  1416.  
  1417. 10.4 named problems
  1418.     To check that something is working in named when it is run check out
  1419.     /usr/tmp/named_dumb.db. This is the file that named creates from all 
  1420.     your configuration files. Check it exists, and contains formatted 
  1421.     information similar to your named.hosts file. If it's zero length then 
  1422.     something is wrong with your SOA record heading (A missing '.' perhaps).
  1423.  
  1424. 10.5 More than one ethernet card in the machine, IRQ conflicts
  1425.     If you have more than one Ethernet card in your machine OR you have
  1426.     a device sharing the IRQ of your network card, you may have problems.
  1427.     Try pulling one of the cards and see what happens, or changing the
  1428.     IRQ (usually done with jumpers on the card).
  1429.  
  1430.     In the Linux kernel source, net/tcp/Space.c defines the network
  1431.     devices to configure. I hear that if you use the 8390/ne2000 driver
  1432.     on IRQ 5, the entry for the wd8003 card in Space.c will confuse things;
  1433.     thus just change the #ifdef around the wd entry in Space.c to something
  1434.     else so it's not compiled in.
  1435.  
  1436.     The following is provided by Ross Biro.
  1437.  
  1438.     If you get the message about time outs on the interrupt, you probably
  1439.     have your irq configured incorrectly.  The irq in Space.c (default 5)
  1440.     MUST match the one on your card. 
  1441.  
  1442.     If nothing happens when you try to use an interface, check the irq
  1443.     and try to get a new copy of config.  Some versions fail to mark the
  1444.     interface as up (the config.c in tcpip-0.8-fixes should work).
  1445.  
  1446.     If you get messages about large packets and immpossible sizes to malloc,
  1447.     you have the memory on your card configured incorrectly, or there is a
  1448.     conflict with some other piece of hardware.  Fix this by checking that
  1449.     your memory is configued right in Space.c and if it still fails, try
  1450.     ALL possible locations in memory (people have suggested that higher
  1451.     seems to work better.)
  1452.  
  1453.     If you get a message about runt packets, you can safely ignore it 
  1454.     and/or comment the printk (kernel debugging output function) out of 
  1455.     we.c.  It indicates either a hardware problem or a initialization 
  1456.     problem in we.c. It only seems to occur on some versions of the SMC 
  1457.     Elite and there is other code to deal with the problem.
  1458.  
  1459.     Also Note if it works under DOS does NOT mean there is not a hardware
  1460.     problem.
  1461.     
  1462. 10.6 General ideas
  1463.     Now then, to give you an idea of what is possible, I'll describe what
  1464.     I have setup and working. I have X11(Xfree86-1.2) running... In one 
  1465.     xterm I have a dos session going, in another I have a telnet session 
  1466.     connected to a sun (csd), and on that sun, i'm connected to a diku on 
  1467.     the linux machine through 'telnet slave 4000', in yet another xterm I 
  1468.     have an ftp session to yet another sun(chef) pulling CIA 10Megabugger 
  1469.     world map onto an NFS mounted disk on another sun (hal) at a rate of 
  1470.     about 35k/s (+/- 15k). I was going to mount up a swapfile on an NFS 
  1471.     disk but decided against it on the grounds of what might happen if the 
  1472.     external machine fell over while I was using that swapfile.
  1473.  
  1474.     Some relief can be found on the newsgroup/mailing lists but one thing 
  1475.     that will *REALLY* help is this...
  1476.  
  1477.     #include <sanity.h>
  1478.     #include <sys/coherance.h>
  1479.     #include <sys/commonsence.h>
  1480.  
  1481.     char    alpha_test[1..80];
  1482.     FILE    *panic;
  1483.  
  1484.     if ((kernel == lastest_on_offer) && (tcpip_broke))
  1485.          {
  1486.         if (kernel_paniced)
  1487.             {
  1488.             fprintf(std_email,"give blurb about kernel\n");
  1489.             system("nm ~linux/tools/system | grep <addr_of_err>");
  1490.             listen();
  1491.             }
  1492.         else
  1493.             {
  1494.             fprintf(std_email,"Conditions of error (recreatable)");
  1495.             listen();
  1496.             }
  1497.         }
  1498.     else
  1499.         {
  1500.         system(upgrade);
  1501.         system(try_again);
  1502.         exit();
  1503.         }
  1504.  
  1505.     (Sorry about that, we had a compitition to find out who could write 
  1506.     the whackist pseudo C code) more simply stated, the error address that 
  1507.     is reported by the kernel can be used with a kernel system file to 
  1508.     tell us what function broke and how far into it it broke. See below 
  1509.     for more on that:
  1510.  
  1511. Several things that can help
  1512.  
  1513.     1)    Upgrade your kernel to the latest one that you can grab  
  1514.         (currently at time of writting 0.99.4). Alternatively
  1515.         if you are running 0.98.5, all the patches are available
  1516.         on sunsite.unc.edu:/pub/Linux/system/Network/tcpip, but
  1517.         as always, think strongly of going to a higher kernel
  1518.         version as they nearly alwas have all the patches applied
  1519.         for tcpip and other misc stuff.
  1520.  
  1521.     2)    Join the NET mail channel, you can learn an awful lot 
  1522.         from the guys on this channel (like the various new 
  1523.         copyrighted techniques for tearing out your hair) 
  1524.  
  1525.     3)    Try and upgrade your C compiler and libraries to at least 
  1526.         version 2.3.3 if possible.
  1527.  
  1528.     4)    Binary distributions of various network probrams can be 
  1529.         found on sunsite.unc.edu,.. always read the README files 
  1530.         they are there for a reason! (personal show/contacts/etc..) 
  1531.         nic.funet.fi and txs-11.mit.edu also have good variation
  1532.         in utilities that you can use. Also don't forget that a lot
  1533.         of network programs will compile reasonably well although,
  1534.         be prepared for unexpected weeks of fustration.
  1535.  
  1536.     5)    Depending on your type of problem, contacting the author 
  1537.         of the software or the person who ported the software would 
  1538.         be a better choice. 
  1539.  
  1540.     6)    If you are experiencing problems with missing files which are
  1541.         placed where you think they *should* be, it's always worth
  1542.         trying the following to find out what files are being used
  1543.  
  1544.             strings <prog> | less
  1545.         
  1546.         This should show up any hard linked files in the binary.
  1547.         eg differing versions of telnet will look at /etc/services OR
  1548.         /usr/etc/inet/services, therefore, it is a good idea to have
  1549.         a symlink from one to the other eg
  1550.  
  1551.             ln -s /etc/services /usr/etc/inet/services
  1552.  
  1553.     7)     If the kernel panics, jot down the address next to EIP. Then do
  1554.            an 'nm /usr/src/linux/tools/system | sort -n' and find out what
  1555.            function the given EIP address is in. This will help a lot. If 
  1556.         you simply post the panic message to the newsgroup, everyone's 
  1557.         kernel is different so it doesn't tell us much.
  1558.  
  1559.     7)    Complain bitterly to me if I haven't covered your problem  
  1560.         and I'll get it sorted for the next NET-FAQ.
  1561.  
  1562.  
  1563. 11. Cast of this production 
  1564.  
  1565. Ross Biro    -    Without whom all this wouldn't be possible 
  1566.             and who pointed out holes in my documentation. 
  1567.             Also contributed the history of tcp/ip on linux 
  1568.             after he saw my rather perverted view of it. 
  1569.  
  1570. Mitch DeSouza    -    Constant alpha tester. Also pointed out mistakes 
  1571.             and made critical and helpfull suggestions (like 
  1572.             getting a spell checker). Also gave me his Tel No. 
  1573.             which I used to annoy him with. 
  1574.  
  1575. Rick Sladkey    -    The current author of the NFS client code in the 
  1576.             kernel.  He also ported the NFS server and the RPC 
  1577.             library.
  1578.  
  1579. Donald Becker    -    Author of the drop in drivers for the linux kernel
  1580.             allowing the following cards to be used,
  1581.             3com503, 3com503/16, NE2000, NE1000 and even a
  1582.             3com501 (Donald: 'not recommended').
  1583.  
  1584. Matt Welsh    -    Trashed, er... reformatted this document, tried 
  1585.             to clean it up. Wrote the tcp/ip quick start guide and 
  1586.             answers tcp/ip config questions.
  1587.  
  1588. The pioneers    -    These are the fearless people who brazenly marched 
  1589.             their filesystems towards complete oblivion and 
  1590.             watched weeks of work evapourate in milliseconds 
  1591.             without a shred of hate for the OS that they had come 
  1592.             to love.
  1593.  
  1594. The supporting    -    You know who you are (probably, depending on how 
  1595. extras            much virtual beer you had last night) for contributing 
  1596.             to the network code with the various bug reports that
  1597.             inevitably crop up. 
  1598.  
  1599. Linus Torvalds    -    The elusive ecentric UNiX kernel coder who probably 
  1600.             burns more CPU time on compiling than anyone else 
  1601.             Here's to a long and healthy kernel development 
  1602.             program and a Nobel equiv award for his efforts. 
  1603.  
  1604. The critics    -    For reminding me that it's a thursday... I never
  1605.             could get the hang of thursday's...
  1606.  
  1607. Myself (Phil)   -    The only sad person to take on the FAQ because I was 
  1608.             getting annoyed at the number of 'petty' tcp/ip code 
  1609.             problems being asked on the net. Besides of which I 
  1610.             wanted to give something useful towards Linux which 
  1611.             I've used since 0.10 (does this make me a veteran?) 
  1612.  
  1613.                                                          
  1614. Phil    (The non spell checking insomniacial/palagerist who never learnt 
  1615. =--=     english grammer) 
  1616.  
  1617.  
  1618.  
  1619.